#pragma once
#include <iostream>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string>

const std::string filename = "/dev/null";

//守护进程化
// void Deamom(const std::string &Chdir = "")
// {
//     // 1.屏蔽信号
//     signal(SIGCLD, SIG_IGN);
//     signal(SIGPIPE, SIG_IGN);
//     signal(SIGSTOP, SIG_IGN);

//     // 2.fork子进程，子进程执行setsid()，创建守护进程，父进程退出
//     if (fork() > 0)
//         exit(0);
//     setsid();

//     // 3.将守护进程的工作路径更改为根目录
//     if (!Chdir.empty())
//         chdir(Chdir.c_str());

//     // 由于守护进程没有终端，不能和用户进程交互，所以我们需要将标准输入，标准输出，标准错误重定向到 /dev/null下
//     int fd = open(filename.c_str(), O_RDWR, 000);
//     dup2(fd, 0);
//     dup2(fd, 1);
//     dup2(fd, 2);

//     return;
// }

